1. Field of Art
The disclosure generally relates to video compression, and more particularly, to cascading of multiple video transcoders in a video processing system.
2. Description of the Related Art
H.264 video coding standard includes several algorithmic improvements for hybrid motion compensated and discrete cosine transform (DCT) based video codecs. One aspect of the improvements is entropy coding. Entropy coding is a lossless compression technique. Typically, entropy encoders are used to compress data by assigning codes to each data symbol such that the most common symbols use the shortest codes. Efficient entropy coding is important for the overall coding performance of a video codec.
Entropy encoding is an example of lossless encoding that makes uses of the redundancy of video signals. Natural video signals show non-stationary statistical behavior. The statistics of these signals largely depend on the video content. Traditional video coding schemes rely on a mapping from the video signals to a bitstream of variable length-coded syntax elements, such as block types, motion vectors and quantized coefficients. The traditional video coding schemes exploit some of the non-stationary characteristics but not all of them. For example, entropy encoding in hybrid block-based video coding standards, such as MPEG-2, H.263 and MPEG-4, is generally based on fixed tables of variable length codes (VLC).
For transmitting quantized transform coefficients of video signals, a more efficient method called Context-Adaptive Variable Length Coding (CAVLC) is employed in H.264 video coding standard. In this scheme, VLC tables for various syntax elements are switched depending on already transmitted syntax elements. Since the VLC tables are designed to match the corresponding conditional statistics, the entropy coding performance is improved in comparison to schemes using a single fixed VLC table.
The efficiency of entropy coding can be improved further if Context-Adaptive Binary Arithmetic Coding (CABAC) is used. The CABAC design is based on the key elements of binarization, context modeling and binary arithmetic coding. The usage of arithmetic coding and adaptive codes permits CABAC adaptation to non-stationary symbol statistics. The context modeling is applied to a binary sequence of the syntactical elements of the video data, such as block types, motion vectors, and quantized coefficients. The context modeling of CABAC allows already coded syntax elements to be used to estimate conditional probabilities and the conditional probabilities are used for switching several estimated probability models to improve entropy coding efficiency.
For some applications, however, the computational requirements of CABAC may be too high given today's silicon technology. Therefore, H.264 coding standards specifies two alternative methods of entropy coding: a low-complexity technique based on the usage of CAVLC, and the computationally more demanding algorithm of CABAC.
MPEG standards introduced three frame types for video coding: intra frame (I frame), predicted frame (P frame) and bidirectional predicted frame (B frame). The different types of frames are organized together into a group of pictures (GOP). A GOP is the smallest random access unit in a video sequence. I and P frames are sometimes called anchor frames used for motion-compensated prediction in a group of pictures. B frames are predicted using anchor frames (e.g., I or P frames), and are not used to predict anchor frames. However, intra frames do not use temporal correlation for prediction, the compression rate of intra frames are usually low compared to P or B frames that make use of temporal correlation for prediction. In addition, to support random access, there are frequent I frames in a video sequence and it is typical to have two I frames per second. For example, for a compressed H.264 bitstream at bit rate of 9 Mbps, up to 4 Mbps may have been used for encoding intra frames.
CABAC offers higher compression efficiency than CAVLC at the expense of much higher computational complexity. Since CABAC encoding/decoding time for a picture is proportional to the number of bits it produces/receives, it uses more time for bigger pictures, typically I pictures, and less time for smaller pictures typically P and B pictures. For some applications, it is hard or even impossible with today's silicon technology to CABAC encode/decode a large picture in real time. On the other hand, in a typical video processing system, e.g. a video transcoder, the processing speed of other parts of the system, e.g., motion estimation, transform, intra prediction etc., do not depend on the picture size. Therefore CABAC encoding/decoding typically is very slow for large pictures, primarily I pictures, so that the video processing for such large picture becomes slow as well. For smaller pictures, primarily P and B pictures, CABAC runs faster than the other video processing components. However, the processing speed in this latter case is determined by other video processing components, not by CABAC. Therefore, in an H.264 video processing system, CABAC encoding/decoding speed for large pictures can become a performance bottleneck.
The figures depict an embodiment for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.